BLE-Mesh is a wireless personal area network (WPAN) technology that uses a flooding-based packet protocol that with packet retransmission extends the range of BLE devices by including the ability to send messages to and amongst groups of devices. The devices in the BLE-Mesh network can support both BLE and BLE-mesh, but not necessarily both. A rebroadcasting mesh network works by flooding each message to all device nodes in the network through broadcasts.
The nodes in the mesh network all share a set of indexed data slots. Each time a device receives a broadcast message from another device in the mesh, the device repeats the message (rebroadcasts it), enabling its neighboring devices to ‘hear’ the new message. The neighboring devices rebroadcast this message to all their neighbors, and the process is repeated until all devices in the Mesh have received the same message. Flooding thus enables wireless devices to ‘talk’ to each other without being within a direct radio range, as devices between them help by relaying the messages. In a typical WPAN there are edge device(s) which are battery powered, relay devices that are always on as they are always in the listening mode, and there are functional end device(s), such as lights.
Each packet contains the sender's source address (SRC) for packet addressing as well as a packet sequence (SEQ) number, and the payload is also tagged with the type of message that is called a model. The packet also contains the address to whom (which device node) the packet is addressed. The packet generally specifies a unique address of each device in the mesh than can be derived from the device's Universally Unique Identifier (UUID). The SEQ number is a field indicating the sequence number of a message, which prevents device nodes from relaying packets that they have received before. For example a single bit for a single bit SEQ where the SEQ number bit is initialized to 0 by the device upon entering the connection state, and where the SEQ number bit is changed (from 0 to 1 or vice versa) for each new packet sent by the device, but the SEQ number bit is not changed when a packet is relayed (resent, so not new) by the device. Models are application implementations, such as a lighting model that defines the command to dim a light, or get status.
A network device that receives the packet checks the intended address to determine if it is the intended receiver of the packet, and if so begins processing the information within the packet. Devices that hear the packet but are not the intended receiver discard them, or send them back out as a broadcast. This relay function is possible, since a time-to-live (TTL) counter is used so that the packet will only be repeated so many times and since packets that come around are being recognized as already received, they will not be repeated. With this TTL-based packet relaying arrangement flooding the mesh can be avoided.